Hey purple - thanks that indeed worked now with the "External script events" adding to the local.player.achievement immediately.
But unfortunately it's screwed up the bot_kill counter - it runs in an infinite loop, continuously adding kills and looping the audio cue upon the first bot_kill. Simple error on my part probably I know......
Also now getting an error based on the first while statement....
Code:
for(local.i = 1; local.i <= $player.size; local.i++) { (custom/achievements.scr, 27)
for(local.i = 1; local.i ^
^~^~^ Script Error: binary '<=' applied to incompatible types 'NIL' and 'int
Here's the full script now. Sorry for trouble, but I think I'm close...
Code:
main:
//*** Sounds
local.master = spawn ScriptMaster
local.master aliascache announce0 sounds/announcer/firstblood.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce1 sounds/announcer/double_kill.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce2 sounds/announcer/dominating.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce3 sounds/announcer/holyshit.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce4 sounds/announcer/killingspree.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce5 sounds/announcer/rampage.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce6 sounds/announcer/unstoppable.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce7 sounds/announcer/ultrakill.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce8 sounds/announcer/pokersound.wav soundparms 5 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce9 sounds/announcer/children.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce10 sounds/announcer/godlike.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce11 sounds/announcer/headshot.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce12 sounds/announcer/monsterkill.wav soundparms 2 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
local.master aliascache announce13 sounds/announcer/multikill.wav soundparms 4 0.1 0.9 0.2 320 4000 voice loaded maps "m dm obj"
while(1) {
for(local.i = 1; local.i <= $player.size; local.i++) {
local.player = $player[local.i];
if (!local.player.has_client_id_displayed) {
local.player.has_client_id_displayed = 1;
// Widget 1 DISPLAYS CLIENT ID
local.player stufftext "globalwidgetcommand dday1 fgcolor 1.00 1.00 1.00 1.00"
local.player stufftext "globalwidgetcommand dday1 bgcolor 0.00 0.00 0.00 0.00"
local.player stufftext "globalwidgetcommand dday1 fadein 0"
local.player stufftext "globalwidgetcommand dday1 menu dday1 640 480 NONE 0"
local.player stufftext "globalwidgetcommand dday1 virtualres 1"
local.player stufftext "globalwidgetcommand dday1 fullscreen 0"
local.player stufftext "globalwidgetcommand dday1 bgfill 0 0 0 0.00"
local.player stufftext "globalwidgetcommand june6 rect 64 40 -10 100 100"
local.player stufftext "globalwidgetcommand june6 fgcolor 1.00 1.00 1.00 1.00"
local.player stufftext "globalwidgetcommand june6 bgcolor 0.00 0.00 0.00 0.00"
local.player stufftext "globalwidgetcommand june6 font handle-16"
local.player stufftext "globalwidgetcommand june6 align 64 left bottom"
local.player stufftext "globalwidgetcommand june6 virtualsize 64 1
local.player stufftext "globalwidgetcommand june6 shader townhallwindow"
local.player stufftext ("set client_id_msg You are Player: " + local.player.entnum);
local.player stufftext "globalwidgetcommand june6 linkcvar client_id_msg"
local.player stufftext "showmenu dday1"
}
if (local.player.killcount == NIL)
local.player.killcount = 0
if (local.player.bot_killcount == NIL)
local.player.bot_killcount = 0
if (local.player.deathcount == NIL)
local.player.deathcount = 0
if (local.player.achievement == NIL)
local.player.achievement = 0
if (local.player.deathcount_displayed != local.player.deathcount)
local.player.deathcount_displayed = local.player.deathcount;
if (local.player.kills_displayed != local.player.killcount)
local.player.kills_displayed = local.player.killcount;
if (local.player.bot_kills_displayed != local.player.bot_killcount)
local.player.bot_kills_displayed = local.player.bot_killcount;
if (local.player.achievement_displayed != local.player.achievement)
local.player.achievement_displayed = local.player.achievement;
{
if(!local.player.init_count)
{
local.player.killcount = 0;
local.player.bot_killcount = 0;
local.player.deathcount = 0;
local.player.achievement = 0;
local.player.init_count = 1;
}
if (local.player.bot_killcount == 1)
{
local.player.achievement = local.player.achievement + 1;
local.player iprintlnbold_noloc ("Achievement Unlocked: AWW. YOU KILLED A BOT. BIG MAN ON CAMPUS!!!");
local.player playsound announce0;
}
// then call update widget thread
waitthread update_widget local.player;
if (local.player.bot_killcount == 2)
{
local.player.achievement = local.player.achievement + 1;
local.player locprint 140 80 ("Achievement Unlocked: 2 BOTS PWNED! HERE. WE. GO!");
local.player playsound announce1;
}
// then call update widget thread
waitthread update_widget local.player;
update_widget local.player:
// WIDGET 2 DISPLAYS BOT KILLS AND HUMAN KILLS
local.player stufftext "globalwidgetcommand dday2 fgcolor 1.00 1.00 1.00 1.00"
local.player stufftext "globalwidgetcommand dday2 bgcolor 0.00 0.00 0.00 0.00"
local.player stufftext "globalwidgetcommand dday2 fadein 0"
local.player stufftext "globalwidgetcommand dday2 menu dday2 640 480 NONE 0"
local.player stufftext "globalwidgetcommand dday2 virtualres 1"
local.player stufftext "globalwidgetcommand dday2 fullscreen 0"
local.player stufftext "globalwidgetcommand dday2 bgfill 0 0 0 0.00"
local.player stufftext "globalwidgetcommand charliesector rect 65 100 -10 100 100"
local.player stufftext "globalwidgetcommand charliesector fgcolor 1.00 1.00 1.00 1.00"
local.player stufftext "globalwidgetcommand charliesector bgcolor 0.00 0.00 0.00 0.00"
local.player stufftext "globalwidgetcommand charliesector font handle-16"
local.player stufftext "globalwidgetcommand charliesector align 64 center bottom"
local.player stufftext "globalwidgetcommand charliesector virtualsize 64 1
local.player stufftext "globalwidgetcommand charliesector shader townhallwindow"
local.player stufftext ("set bot_kill_msg Bot Frags: " + local.player.bot_killcount + " / Human Frags: " + local.player.killcount);
local.player stufftext "globalwidgetcommand charliesector linkcvar bot_kill_msg"
local.player stufftext "showmenu dday2"
// WIDGET 3 - DISPLAYS ACHIEVEMENTS
local.player stufftext "globalwidgetcommand credits2 name credits1"
local.player stufftext "globalwidgetcommand credits1 shader townhallwindow"
local.player stufftext "globalwidgetcommand credits1 fgcolor 1.00 0.00 1.00 1.00"
local.player stufftext "globalwidgetcommand credits1 bgcolor 0.00 0.00 0.00 0.00"
local.player stufftext "globalwidgetcommand credits1 fadein 0"
local.player stufftext "globalwidgetcommand credits1 menu credits2 640 480 NONE 0"
local.player stufftext "globalwidgetcommand credits1 virtualres 1"
local.player stufftext "globalwidgetcommand credits1 fullscreen 0"
local.player stufftext "globalwidgetcommand credits1 name credits2"
local.player stufftext "globalwidgetcommand credits1 rect 66 -150 -10 100 100"
local.player stufftext "globalwidgetcommand credits1 fgcolor 1.00 3.00 4.00 6.00"
local.player stufftext "globalwidgetcommand credits1 bgcolor 0.00 0.00 0.00 0.00"
local.player stufftext "globalwidgetcommand credits1 align 66 right bottom"
local.player stufftext "globalwidgetcommand credits1 virtualsize 66 1
local.player stufftext "globalwidgetcommand credits1 font handle-16"
local.player stufftext "globalwidgetcommand credits1 shader townhallwindow"
local.player stufftext ("set achievement_msg Achievements: " + local.player.achievement + " / 20 Points");
local.player stufftext "globalwidgetcommand credits1 linkcvar achievement_msg"
local.player stufftext "showmenu credits1"
}
}
wait 1
}
end
Thanks again.